package com.qqt.csr.archive.entity.writer;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serial;
import java.io.Serializable;

/**
 * @Author: yang hao
 * @Date: 2024/11/19 15:56
 * @Description: 归档会话
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "归档会话")
@Document(collection = "archive_conversation")
public class ArchiveConversation implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Id
    @Schema(description = "objectId")
    private String id;

    @Schema(description = "用户id")
    private String userId;

    @Schema(description = "用户名称")
    private String userName;

    @Indexed(name = "idx_conversation_id")
    @Schema(description = "会话id")
    private String conversationId;

    @Schema(description = "会话类型")
    private String conversationType;

    @Schema(description = "会话开始时间")
    private String conversationStartTime;

    @Schema(description = "会话结束时间")
    private String conversationEndTime;

    @Schema(description = "渠道id")
    private String channelId;

    @Schema(description = "渠道类型")
    private String channelType;

    @Schema(description = "渠道名称")
    private String channelName;

    @Schema(description = "渠道业务")
    private String channelService;

    @Schema(description = "技能组id")
    private String skillSetId;

    @Schema(description = "技能组名称")
    private String skillSetName;

    @Schema(description = "客服所属部门id")
    private String csDeptId;

    @Schema(description = "客服所属架构")
    private String csDept;

    @Schema(description = "客服id")
    private String csId;

    @Schema(description = "客服名称")
    private String csName;

    @Schema(description = "客服工号")
    private String csJobNumber;

    @Schema(description = "房间id")
    private String roomId;

    @Schema(description = "用户账号id")
    private String userAccountId;

    @Schema(description = "客服账号id")
    private String csAccountId;

    @Schema(description = "人工客服-扩展信息")
    private String artificialExt;

    @Schema(description = "智能客服-扩展信息")
    private String smartExt;

    @Schema(description = "创建时间")
    private String createTime;

    @Schema(description = "更新时间")
    private String updateTime;

    @Schema(description = "触发敏感词消息数")
    private Integer sensitiveWordMsgCount;

}
